package org.example.leetcode;

/**
 * @version 1.0.0
 * @author: lynn
 * @description: 零钱兑换II，零钱有多少种组合
 * https://www.bilibili.com/video/BV1kX4y1P7M3?from=search&seid=12400356355472692434
 * @date: 2021/7/25 10:14
 */
public class LC518 {

    /** coins={1,2,5}
     后面的amout并不依赖于前面amout，兑换5块钱的多少组合，跟兑换4,3,2块钱有多少种金额的组合是没关系的
     {
     1: 1
     2: 1+1,2
     3: 1+2,1+1+1
     4: 1+1+1+1,2+2
     5：1+1+1+1+1,5
     }
     这道题只能通过iterate coins实现， 打个比方，假如我现在就只有1块钱，想要凑5块钱，有几种可能？或者我有
     1,2,5面额的硬币，要凑5块钱有几种可能？凑成0块钱，没法凑吧，为什么是一种方法呢? 就是我啥也不取，就这种情况
     假如凑5块钱 dp[5]=5+dp[0];

     而322那道题，兑换5块钱找零钱张数最少，就是兑换1+dp[4],2+dp[2],5+dp[0]块钱找零最少+1(1,3,2),这里dp[0]=0，
     可以通过 iterate amount 实现;
     */


    /**
     * 推道状态转移方程
     * https://www.bilibili.com/video/BV1RT4y1E7vb/?spm_id_from=333.788.recommend_more_video.1
     */
    public int change(int amount, int[] coins) {
        int res=0;


        return res;
    }
}
